package br.com.marcelo.reservasis.client.pagina.apartamento;

import br.com.aroeirasoftware.gwtcomponents.client.components.ASMessagePanel;
import br.com.aroeirasoftware.gwtcomponents.client.components.ASPageDetail;
import br.com.marcelo.reservasis.client.componentes.ReservaSISApplication;
import br.com.marcelo.reservasis.client.i18n.ReservaSISI18N;
import br.com.marcelo.reservasis.client.services.apartamento.ApartamentoUIService;
import br.com.marcelo.reservasis.domain.model.Apartamento;
import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 *
 * @author Marcelo Rodrigues
 */
public class ApartamentoDetalharPagina extends ASPageDetail {

    private Apartamento apartamento;

    public ApartamentoDetalharPagina(Apartamento apartamento) {
        super(null, ReservaSISApplication.getInstance(),
                ReservaSISI18N.messages.apartamento());
        this.apartamento = apartamento;
    }

    @Override
    public void configurarComponentes() {
    }

    @Override
    public void configurarDados() {
        ApartamentoUIService.Async.getInstance().getPorId(apartamento.getIdapart(), new AsyncCallback<Apartamento>() {

            public void onFailure(Throwable caught) {
                ASMessagePanel.getInstance().exibirMensagem(ReservaSISI18N.messages.msgErro("", caught),
                        ASMessagePanel.ASMessageSeverity.ERRO,
                        ASMessagePanel.ASMessageOption.OK);
            }

            public void onSuccess(Apartamento result) {
                apartamento = result;

                addLinhaTabela(ReservaSISI18N.messages.numeroApartamento(), apartamento.getNumApart().toString());
                addLinhaTabela(ReservaSISI18N.messages.descricaoApartamento(), apartamento.getDescricaoApart());
                addLinhaTabela(ReservaSISI18N.messages.numeroQuarto(), apartamento.getNumQuartosApart().toString());
                addLinhaTabela(ReservaSISI18N.messages.tipoApartamento(), apartamento.getTipoApartamento() != null ? apartamento.getTipoApartamento().getDescricao() : "");
            }
        });
    }
}
